package com.example.demo.mapper;

import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface IUser {
    /**
     * 添加用户
     * @param user 用户实体
     * @return 新用户ID
     */
    Integer add(User user);

    /**
     * 用户列表
     * @return 用户数组
     */
    List<User> list();

    /**
     * 根据ID查找一个用户
     * @param id 用户ID
     * @return 实际用户
     */
    User findById(Integer id);

    /**
     * 该用户是否存在
     * @param user 用户
     * @return 返回匹配的用户实例
     */
    User isExisted(User user);

    /**
     * 获得用户总数
     * @return 用户总数
     */
    Integer count();

    /**
     * 根据用户名查找用户
     * @param userName 用户名
     * @return 实际用户
     */
    User findByName(String userName);

    /**
     * 更新用户
     * @param user 用户，根据用户id来更新
     * @return 影响的行数
     */
    Integer update(User user);

    /**
     * 删除用户
     * @param id 用户ID
     * @return 一共删除的个数
     */
    Integer delete(Integer id);
}
